package com.collabscm.pf.profiler;

import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

/**
 * 请求监控的Annotion，用于性能调优监控等，应用于方法级的监控，目的监控请求的执行时间，如果预期某个方法，
 * 或某个请求最大操作时间为100ms， 如果超过了那么需要记录日志供观察。
 * 
 * 系统将只对声明了此@Monitor的方法进行方法运行的监控
 *
 * @author Zeng Raoxing
 * @see Profiler
 */
@Target({METHOD}) 
@Retention(RUNTIME)
public @interface Monitor {
	
	/**
	 * 执行的时间上限，单位毫秒（ms），其中：-1表示不限制时间，所有情况都需要追踪。
	 */
	int uptime() default -1;

}